home *** CD-ROM | disk | FTP | other *** search
/ Tricks of the 3D Game Programming Gurus / gurus.iso / DirectX / dx9sdkcp.exe / SDK (C++) / Include / DShowIDL / mstve.idl < prev    next >
Encoding:
Text File  |  2002-11-12  |  68.0 KB  |  1,451 lines

  1. // Copyright (c) 1999,2000,2001  Microsoft Corporation.  All Rights Reserved.
  2. // MSTvE.idl : IDL source for MSTvE.dll
  3. //
  4. // This file will be processed by the MIDL tool to
  5. // produce the type library (TveContr.tlb) and marshalling code.
  6. //
  7. //        Need to put MIDL attributes of:
  8. //            'noncreatable' on
  9. //            'hidden'       on
  10. //            'nonbrowsable' on
  11. //
  12. //  -- _Helper interfaces need to be in the library section or else
  13. //        can't seen them in the client
  14. //
  15. //    -- None of the _Helper interfaces are marked dual.  Hence they 
  16. //       won't work up on the client... (???)
  17. //
  18. // ---------------------------------------------------
  19. //            CAUTION - if Change methods below, need to regen the proxy-stub file
  20. //                nmake -f MSTvEps.mk
  21. //                regsvr32 /s MSTvEps.dll
  22. //    
  23. //
  24. //            Also - if change any of the IID's, need to rebuild ..\uuid\[]\strmiids.lib
  25.  
  26. cpp_quote("//+-------------------------------------------------------------------------")
  27. cpp_quote("//")
  28. cpp_quote("//  Microsoft Windows")
  29. cpp_quote("//  Copyright (C) Microsoft Corporation, 1999, 2000.")
  30. cpp_quote("//")
  31. cpp_quote("//--------------------------------------------------------------------------")
  32. cpp_quote("#pragma once")
  33.  
  34. import "oaidl.idl";
  35. import "ocidl.idl";
  36.  
  37.         // forward declarations
  38. interface ITVETrigger;
  39. interface ITVETrack;
  40. interface ITVEVariation;
  41. interface ITVEEnhancement;
  42. interface ITVEService;
  43. interface ITVEActiveService;
  44. interface ITVESupervisor;
  45. interface ITVEAttrMap;
  46. interface ITVEAttrTimeQ;
  47.  
  48. interface ITVETracks;
  49. interface ITVEVariations;
  50. interface ITVEEnhancements;
  51. interface ITVEServices;
  52.  
  53. interface ITVEFile;
  54.  
  55. interface ITVESupervisor_Helper;
  56.  
  57. //  Listener..
  58. interface ITVEMCast;
  59. interface ITVEMCasts;
  60. interface ITVEMCastManager;
  61. interface ITVEMCastCallback;
  62.  
  63. //  interfaces to configure the filter and get events from,
  64. interface ITVEFilter ;
  65. interface ITVEFilter_Helper;
  66.  
  67. // glue stuff
  68. interface    ITVENavAid;
  69. interface    ITVENavAid_Helper;
  70. interface    ITVENavAid_NoVidCtl;
  71. interface    ITVETriggerCtrl;
  72. interface    ITVETriggerCtrl_Helper;
  73.  
  74. interface    ITVEFeature;
  75. interface    ITVESupervisorGITProxy;
  76. // ----------------------------------------------------------------------------------
  77.  
  78. #define COLLECTID_Item        DISPID_VALUE    // (0)    
  79. #define COLLECTID_Count        1                // standard set of collection interfaces
  80. #define COLLECTID_Add        2
  81. #define COLLECTID_Remove    3
  82. #define COLLECTID_RemoveAll    4                // extra for maps
  83. #define COLLECTID_Key        5    
  84. #define COLLECTID_Replace    6        
  85. #define COLLECTID_Insert    7        
  86. #define COLLECTID_Update    8
  87.     
  88. typedef enum NENH_Mode
  89. {
  90.     NENH_New,
  91.     NENH_Duplicate,
  92.     NENH_Updated,
  93.     NENH_Starting,
  94.     NENH_Expired
  95. } NENH_Mode;
  96.  
  97. typedef enum NPKG_Mode
  98. {
  99.     NPKG_Starting,                            // brand new packet (never seen this UUID before)
  100.     NPKG_Received,                            // correctly received and decoded a package
  101.     NPKG_Duplicate,                            // duplicate send of a one already successfully received (packet 0 only)
  102.     NPKG_Resend,                            // resend of one that wasn't received correctly before (packet 0 only)
  103.     NPKG_Expired
  104. } NPKG_Mode;
  105.  
  106. typedef enum NTRK_Mode
  107. {
  108.     NTRK_New,
  109.     NTRK_Duplicate,                            // exact duplicate of existing one
  110.     NTRK_Updated,                            // updated version of existing one
  111.     NTRK_Starting,                            // (not used???)
  112.     NTRK_Expired
  113. } NTRK_Mode;
  114.  
  115. typedef enum NFLE_Mode
  116. {
  117.     NFLE_Received,                            // correctly received and decoded a package
  118.     NFLE_Expired
  119. } NFLE_Mode;
  120.  
  121. typedef enum NTUN_Mode
  122. {
  123.     NTUN_New,                                // new station (service) never seen before
  124.     NTUN_Retune,                            // tuning back to an existing station
  125.     NTUN_Reactivate,                        // retuning to the current station
  126.     NTUN_Turnoff,                            // turning atvef off
  127.     NTUN_Fail                                // failed to tune for some reason
  128. } NTUN_Mode;
  129.  
  130.  
  131. typedef enum NWHAT_Mode                        // used in NotifyAuxInfo
  132. {
  133.     NWHAT_Announcement,
  134.     NWHAT_Trigger,
  135.     NWHAT_Data,
  136.     NWHAT_Other,
  137.     NWHAT_Extra
  138. } NWHAT_Mode;
  139.  
  140.  
  141.         
  142.  
  143.             // ---------------------------------------------------------------------
  144.  
  145.     [
  146.         object,
  147.         uuid(05500101-FAA5-4df9-8246-BFC23AC5CEA8),
  148.         dual,
  149.         helpstring("ITVETrigger Interface"),
  150.         pointer_default(unique)
  151.     ]
  152.     interface ITVETrigger : IDispatch
  153.     {
  154.         [propget, id(1), helpstring("property Parent")]            HRESULT Parent([out, retval] IUnknown* *pVal);
  155.         [propget, id(2), helpstring("property Service")]        HRESULT Service([out, retval] ITVEService* *pVal);
  156.         [propget, id(3), helpstring("property IsValid")]        HRESULT IsValid([out, retval] VARIANT_BOOL *pVal);
  157.         [propget, id(4), helpstring("property URL")]            HRESULT URL([out, retval] BSTR *pVal);
  158.         [propget, id(5), helpstring("property Name")]            HRESULT Name([out, retval] BSTR *pVal);
  159.         [propget, id(6), helpstring("property Expires")]        HRESULT Expires([out, retval] DATE *pVal);
  160.         [propget, id(7), helpstring("property Executes")]        HRESULT Executes([out, retval] DATE *pVal);
  161.         [propget, id(8), helpstring("property Script")]            HRESULT Script([out, retval] BSTR *pVal);
  162.         [propget, id(9), helpstring("property TVELevel")]        HRESULT TVELevel([out, retval] float *pVal);
  163.         [propget, id(10), helpstring("property Rest")]            HRESULT Rest([out, retval] BSTR *pVal);
  164.         [          id(11), helpstring("method ParseTrigger")]    HRESULT ParseTrigger([in] const BSTR rVal);
  165.     };
  166.  
  167.     [
  168.         object,
  169.         uuid(05500201-FAA5-4df9-8246-BFC23AC5CEA8),
  170. //        dual,
  171.         hidden,
  172.         helpstring("ITVETrigger_Helper Interface"),
  173.         pointer_default(unique)
  174.     ]
  175.     interface ITVETrigger_Helper : IUnknown
  176.     {
  177.         [         id(1), helpstring("method ConnectParent")]    HRESULT ConnectParent([in] ITVETrack *pTrack);
  178.         [propget, id(2), helpstring("property CRC")]            HRESULT CRC([in] const BSTR rVal, [out, retval] BSTR *pbstrCRC);
  179.         [          id(3), helpstring("method UpdateFrom")]        HRESULT UpdateFrom([in] ITVETrigger *pTrigger, [out] long *plgrfTRKChanged);
  180.         [          id(4), helpstring("method RemoveYourself")]    HRESULT    RemoveYourself();
  181.         [          id(5), helpstring("method DumpToBSTR")]        HRESULT DumpToBSTR([out] BSTR *pbstrBuff);
  182.     };
  183.  
  184.  
  185. // ---------------------------------------------------
  186.  
  187.     [
  188.         object,
  189.         uuid(05500102-FAA5-4df9-8246-BFC23AC5CEA8),
  190.         dual,
  191.         helpstring("ITVETrack Interface"),
  192.         pointer_default(unique)
  193.     ]
  194.     interface ITVETrack : IDispatch
  195.     {
  196.         [propget, id(1), helpstring("property Parent")]            HRESULT Parent([out, retval] IUnknown* *pVal);
  197.         [propget, id(2), helpstring("property Service")]        HRESULT Service([out, retval] ITVEService* *pVal);
  198.         [propget, id(3), helpstring("property Trigger")]        HRESULT Trigger([out, retval] ITVETrigger* *pVal);
  199.         [propget, id(4), helpstring("property Description")]    HRESULT Description([out, retval] BSTR *pVal);
  200.         [propput, id(4), helpstring("property Description")]    HRESULT Description([in] BSTR newVal);
  201.         [         id(5), helpstring("method AttachTrigger")]    HRESULT AttachTrigger([in] ITVETrigger *pTrigger);
  202.         [         id(6), helpstring("method ReleaseTrigger")]    HRESULT ReleaseTrigger();
  203.         [         id(7), helpstring("method CreateTrigger")]    HRESULT CreateTrigger([in] const BSTR bstrDescription);
  204.     };
  205.  
  206.     [
  207.         object,
  208.         uuid(05500202-FAA5-4df9-8246-BFC23AC5CEA8),
  209. //        dual,
  210.         hidden,
  211.         helpstring("ITVETrack_Helper Interface"),
  212.         pointer_default(unique)
  213.     ]
  214.     interface ITVETrack_Helper : IUnknown
  215.     {
  216.         [id(1),    helpstring("method ConnectParent")]        HRESULT ConnectParent(ITVEVariation *pVariation);
  217.         [id(2), helpstring("method RemoveYourself")]    HRESULT    RemoveYourself();
  218.         [id(3), helpstring("method DumpToBSTR")]        HRESULT DumpToBSTR([out] BSTR *pbstrBuff);
  219.     };
  220.  
  221.     [
  222.         object,
  223.         uuid(05500112-FAA5-4df9-8246-BFC23AC5CEA8),
  224.         dual,
  225.         helpstring("ITVETracks Interface"),
  226.         pointer_default(unique)
  227.     ]
  228.  
  229.     interface ITVETracks : IDispatch
  230.     {
  231.         [propget, id(DISPID_NEWENUM), restricted, helpstring("property _NewEnum")] HRESULT _NewEnum([out, retval] IUnknown **pCollection);
  232.         [propget, id(COLLECTID_Count),  helpstring("property Count")]        HRESULT Count([out, retval] long *pVal);
  233.         [propget, id(COLLECTID_Item),   helpstring("property Item")]        HRESULT Item([in] VARIANT var, [out, retval] ITVETrack * *pVal);
  234.         [         id(COLLECTID_Add),    helpstring("method Add")]            HRESULT Add([in] ITVETrack *pTrack);
  235.         [         id(COLLECTID_Remove), helpstring("method Remove")]        HRESULT Remove([in] VARIANT var);
  236.         [         id(COLLECTID_RemoveAll), helpstring("method RemoveAll")]    HRESULT RemoveAll();
  237.         [         id(COLLECTID_Insert), helpstring("method Insert")]        HRESULT Insert([in] int iLoc, [in] ITVETrack *pTrack);
  238.     };
  239.  
  240. // ---------------------------------------------------
  241.  
  242.     [
  243.         object,
  244.         uuid(05500103-FAA5-4df9-8246-BFC23AC5CEA8),
  245.         dual,
  246.         helpstring("ITVEVariation Interface"),
  247.         pointer_default(unique)
  248.     ]
  249.     interface ITVEVariation : IDispatch
  250.     {
  251.         [propget, id(1), helpstring("property Parent")]                HRESULT Parent([out, retval] IUnknown* *pVal);
  252.         [propget, id(2), helpstring("property Service")]            HRESULT Service([out, retval] ITVEService* *pVal);
  253.         [propget, id(3), helpstring("property Tracks")]                HRESULT Tracks([out, retval] ITVETracks* *pVal);
  254.         [propget, id(4), helpstring("property Description")]        HRESULT Description([out, retval] BSTR *pVal);
  255.         [propput, id(4), helpstring("property Description")]        HRESULT Description([in] BSTR newVal);
  256.  
  257.         [propget, id(5), helpstring("property IsValid")]            HRESULT IsValid([out, retval] VARIANT_BOOL *pVal);
  258.         [propget, id(6), helpstring("property MediaName")]            HRESULT MediaName([out, retval] BSTR *newVal);
  259.         [propget, id(7), helpstring("property MediaTitle")]            HRESULT MediaTitle([out, retval] BSTR *newVal);
  260.         [propget, id(8), helpstring("property FileIPAdapter")]        HRESULT FileIPAdapter([out, retval] BSTR *newVal);
  261.         [propget, id(9), helpstring("property FileIPAddress")]        HRESULT FileIPAddress([out, retval] BSTR *newVal);
  262.         [propget, id(10), helpstring("property FilePort")]            HRESULT FilePort([out, retval] LONG *lPort);
  263.         [propget, id(11), helpstring("property TriggerIPAdapter")]    HRESULT TriggerIPAdapter([out, retval] BSTR *newVal);
  264.         [propget, id(12), helpstring("property TriggerIPAddress")]    HRESULT TriggerIPAddress([out, retval] BSTR *newVal);
  265.         [propget, id(13), helpstring("property TriggerPort")]        HRESULT TriggerPort([out, retval] LONG *lPort);
  266.         [propget, id(14),helpstring("property Languages")]            HRESULT Languages([out, retval] ITVEAttrMap* *ppVal);
  267.         [propget, id(15),helpstring("property SDPLanguages")]        HRESULT SDPLanguages([out, retval] ITVEAttrMap* *ppVal);
  268.         [propget, id(16),helpstring("property Bandwidth")]            HRESULT Bandwidth([out, retval] LONG *lVal);
  269.         [propget, id(17),helpstring("property BandwidthInfo")]        HRESULT BandwidthInfo([out, retval] BSTR *newVal);
  270.         [propget, id(18),helpstring("property Attributes")]            HRESULT Attributes([out, retval] ITVEAttrMap* *ppVal);
  271.  
  272.         [propget, id(19),helpstring("property Rest")]                HRESULT Rest([out, retval] ITVEAttrMap* *ppVal);
  273.         [         id(20),helpstring("method Initialize")]            HRESULT Initialize([in] BSTR newVal);
  274.     };
  275.  
  276.     [
  277.         object,
  278.         uuid(05500203-FAA5-4df9-8246-BFC23AC5CEA8),
  279. //        dual,
  280.         hidden,
  281.         helpstring("ITVEVariation_Helper Interface"),
  282.         pointer_default(unique)
  283.     ]
  284.     interface ITVEVariation_Helper : IUnknown
  285.     {
  286.         [            id(1),  helpstring("method ConnectParent")]            HRESULT ConnectParent([in] ITVEEnhancement *pEnhancement);
  287.         [            id(2),  helpstring("method DefaultTo")]                HRESULT DefaultTo([in] ITVEVariation *pVariationBase);
  288.         [            id(3),  helpstring("method SetTriggerIPAdapter")]    HRESULT SetTriggerIPAdapter([in] BSTR bstrBuff);
  289.         [            id(4),  helpstring("method SetFileIPAdapter")]        HRESULT SetFileIPAdapter([in] BSTR bstrBuff);
  290.         [            id(5),  helpstring("method SubParseSDP")]            HRESULT SubParseSDP(const BSTR *pbstrSDP, BOOL *pfMissingMedia);
  291.         [            id(6),  helpstring("method ParseCBTrigger")]        HRESULT ParseCBTrigger(BSTR bstrTrig);
  292.         [            id(7),  helpstring("method FinalParseSDP")]            HRESULT FinalParseSDP();
  293.         [            id(8),  helpstring("method UpdateVariation")]        HRESULT UpdateVariation(ITVEVariation *pVarNew, long *plNVAR_grfChanged);
  294.         [            id(9),  helpstring("method InitAsXOver")]            HRESULT InitAsXOver();
  295.         [            id(11),    helpstring("method NewXOverLink")]            HRESULT NewXOverLink([in] BSTR bstrLine21Trigger);
  296.         [            id(12),    helpstring("method RemoveYourself")]        HRESULT    RemoveYourself();
  297.         [propput,    id(13), helpstring("property MediaTitle")]            HRESULT MediaTitle([in] BSTR bstrBuff);
  298.         [propput,   id(14), helpstring("property IsValid")]                HRESULT IsValid([in] VARIANT_BOOL fValid);
  299.         [            id(15), helpstring("method DumpToBSTR")]            HRESULT DumpToBSTR([out] BSTR *bstrBuff);
  300.     };
  301.  
  302.     [
  303.         object,
  304.         uuid(05500113-FAA5-4df9-8246-BFC23AC5CEA8),
  305.         dual,
  306.         helpstring("ITVEVariations Interface"),
  307.         pointer_default(unique)
  308.     ]    
  309.     interface ITVEVariations : IDispatch
  310.     {
  311.         [propget, id(DISPID_NEWENUM), restricted, helpstring("property _NewEnum")] HRESULT _NewEnum([out, retval] IUnknown **pCollection);
  312.         [propget, id(COLLECTID_Count),  helpstring("property Count")]        HRESULT Count([out, retval] long *pVal);
  313.         [propget, id(COLLECTID_Item),   helpstring("property Item")]        HRESULT Item([in] VARIANT var, [out, retval] ITVEVariation * *pVal);
  314.         [         id(COLLECTID_Add),    helpstring("method Add")]            HRESULT Add([in] ITVEVariation *pEnh);
  315.         [         id(COLLECTID_Remove), helpstring("method Remove")]        HRESULT Remove([in] VARIANT var);
  316.         [         id(COLLECTID_RemoveAll), helpstring("method RemoveAll")]    HRESULT RemoveAll();
  317.         [         id(COLLECTID_Insert), helpstring("method Insert")]        HRESULT Insert([in] int iLoc, [in] ITVEVariation *pEnh);
  318.     };
  319. // ---------------------------------------------------
  320.     [
  321.         object,
  322.         uuid(05500104-FAA5-4df9-8246-BFC23AC5CEA8),
  323.         dual,
  324.         helpstring("ITVEEnhancement Interface"),
  325.         pointer_default(unique)
  326.     ]
  327.     interface ITVEEnhancement : IDispatch
  328.     {
  329.         [propget, id(1),  helpstring("property Parent")]            HRESULT Parent([out, retval] IUnknown* *pVal);
  330.         [propget, id(2),  helpstring("property Service")]            HRESULT Service([out, retval] ITVEService* *pVal);
  331.         [propget, id(3),  helpstring("property Variations")]        HRESULT Variations([out, retval] ITVEVariations* *pVal);
  332.  
  333.         [propget, id(4),  helpstring("property IsValid")]            HRESULT IsValid([out, retval] VARIANT_BOOL *pVal);
  334.         [propget, id(5),  helpstring("property ProtocolVersion")]    HRESULT ProtocolVersion([out, retval] BSTR *pVal);
  335.         [propget, id(6),  helpstring("property SessionUserName")]    HRESULT SessionUserName([out, retval] BSTR *pVal);
  336.         [propget, id(7),  helpstring("property SessionId")]            HRESULT SessionId([out, retval] LONG *plVal);
  337.         [propget, id(8),  helpstring("property SessionVersion")]    HRESULT SessionVersion([out, retval] LONG *plVal);
  338.         [propget, id(9),  helpstring("property SessionIPAddress")]    HRESULT SessionIPAddress([out, retval] BSTR *pVal);
  339.         [propget, id(10), helpstring("property SessionName")]        HRESULT SessionName([out, retval] BSTR *pVal);
  340.         [propget, id(11), helpstring("property EmailAddresses")]    HRESULT EmailAddresses([out, retval] ITVEAttrMap* *pVal);
  341.         [propget, id(12), helpstring("property PhoneNumbers")]        HRESULT PhoneNumbers([out, retval] ITVEAttrMap* *pVal);
  342.  
  343.         [propget, id(13), helpstring("property Description")]        HRESULT Description([out, retval] BSTR *pVal);
  344.         [propput, id(13), helpstring("property Description")]        HRESULT Description([in] BSTR newVal);
  345.         [propget, id(14), helpstring("property DescriptionURI")]    HRESULT DescriptionURI([out, retval] BSTR *pVal);
  346.  
  347.         [propget, id(15), helpstring("property UUID")]                HRESULT UUID([out, retval] BSTR *pVal);
  348.         [propget, id(16), helpstring("property StartTime")]            HRESULT StartTime([out, retval] DATE *pVal);
  349.         [propget, id(17), helpstring("property StopTime")]            HRESULT StopTime([out, retval] DATE *pVal);
  350.         [propget, id(18), helpstring("property IsPrimary")]            HRESULT IsPrimary([out, retval] VARIANT_BOOL *pVal);
  351.  
  352.         [propget, id(19), helpstring("property Type")]                HRESULT Type([out, retval] BSTR *pVal);
  353.         [propget, id(20), helpstring("property TveType")]            HRESULT TveType([out, retval] BSTR *pVal);
  354.         [propget, id(21), helpstring("property TveSize")]            HRESULT TveSize([out, retval] LONG *plVal);
  355.         [propget, id(23), helpstring("property TveLevel")]            HRESULT TveLevel([out, retval] double *pVal);
  356.     
  357.         [propget, id(24), helpstring("property Attributes")]        HRESULT Attributes([out, retval] ITVEAttrMap* *pVal);
  358.         [propget, id(25), helpstring("property Rest")]                HRESULT Rest([out, retval] ITVEAttrMap* *pVal);
  359.  
  360.         [propget, id(26), helpstring("property SAPHeaderBits")]        HRESULT SAPHeaderBits([out, retval] short *pVal);
  361.         [propget, id(27), helpstring("property SAPAuthLength")]        HRESULT SAPAuthLength([out, retval] short *pVal);
  362.         [propget, id(28), helpstring("property SAPMsgIDHash")]        HRESULT SAPMsgIDHash([out, retval] LONG *pVal);
  363.         [propget, id(29), helpstring("property SAPSendingIP")]        HRESULT SAPSendingIP([out, retval] BSTR *pVal);
  364.         [propget, id(30), helpstring("property SAPAuthData")]        HRESULT SAPAuthData([out, retval] BSTR *pVal);
  365.  
  366.         [          id(31), helpstring("method ParseAnnouncement")]    HRESULT ParseAnnouncement([in] BSTR bstrAdapter, [in] const BSTR *pbstVal, [out] long *plgrfParseError, [out] long *plLineError);
  367.     };
  368.  
  369.  
  370.     [
  371.         object,
  372.         uuid(05500204-FAA5-4df9-8246-BFC23AC5CEA8),
  373. //        dual,
  374.         hidden,
  375.         helpstring("ITVEEnhancement_Helper Interface"),
  376.         pointer_default(unique)
  377.     ]
  378.     interface ITVEEnhancement_Helper : IUnknown
  379.     {
  380.         [id(0), helpstring("method ConnectParent")]        HRESULT ConnectParent(ITVEService *pService);
  381.         [id(1), helpstring("method Activate")]            HRESULT Activate();
  382.         [id(2), helpstring("method Deactivate")]        HRESULT Deactivate();
  383.         [id(3), helpstring("method UpdateEnhancement")] HRESULT UpdateEnhancement([in] ITVEEnhancement *pEnhNew,[out] long *plNENH_grfChanged);
  384.         [id(4), helpstring("method InitAsXOver")]        HRESULT InitAsXOver();
  385.         [id(5), helpstring("method NewXOverLink")]        HRESULT NewXOverLink([in] BSTR bstrLine21Trigger);
  386.         [id(6), helpstring("method RemoveYourself")]    HRESULT    RemoveYourself();
  387.         [id(7), helpstring("method DumpToBSTR")]        HRESULT DumpToBSTR([out] BSTR *pbstrBuff);
  388.     };
  389.  
  390.  
  391.     [
  392.         object,
  393.         uuid(05500114-FAA5-4df9-8246-BFC23AC5CEA8),
  394.         dual,
  395.         helpstring("ITVEEnhancements Interface"),
  396.         pointer_default(unique)
  397.     ]
  398.  
  399.     interface ITVEEnhancements : IDispatch
  400.     {
  401.         [propget, id(DISPID_NEWENUM), restricted, helpstring("property _NewEnum")] HRESULT _NewEnum([out, retval] IUnknown **pCollection);
  402.         [propget, id(COLLECTID_Count),  helpstring("property Count")]        HRESULT Count([out, retval] long *pVal);
  403.         [propget, id(COLLECTID_Item),   helpstring("property Item")]        HRESULT Item([in] VARIANT var, [out, retval] ITVEEnhancement * *pVal);
  404.         [         id(COLLECTID_Add),    helpstring("method Add")]            HRESULT Add([in] ITVEEnhancement *pEnh);
  405.         [         id(COLLECTID_Remove), helpstring("method Remove")]        HRESULT Remove([in] VARIANT var);
  406.         [         id(COLLECTID_RemoveAll), helpstring("method RemoveAll")]    HRESULT RemoveAll();
  407.         [         id(COLLECTID_Insert), helpstring("method Insert")]        HRESULT Insert([in] int iLoc, [in] ITVEEnhancement *pEnh);
  408.     };
  409. // ---------------------------------------------------
  410.  
  411.     [
  412.         object,
  413.         uuid(05500105-FAA5-4df9-8246-BFC23AC5CEA8),
  414.         dual,
  415.         helpstring("ITVEService Interface"),
  416.         pointer_default(unique)
  417.     ]
  418.     interface ITVEService : IDispatch
  419.     {
  420.         [propget, id(1), helpstring("property Parent")]            HRESULT Parent([out, retval] IUnknown* *pVal);
  421.         [propget, id(2), helpstring("property Enhancements")]    HRESULT Enhancements([out, retval] ITVEEnhancements* *pVal);
  422.         [propget, id(3), helpstring("property Description")]    HRESULT Description([out, retval] BSTR *pVal);
  423.         [propput, id(3), helpstring("property Description")]    HRESULT Description([in] BSTR newVal);
  424.         [          id(4), helpstring("method Activate")]            HRESULT Activate();        // used in tuning, turns on announcement
  425.         [          id(5), helpstring("method Deactivate")]        HRESULT Deactivate();        // used in tuning, turns off announcement
  426.         [propget, id(6), helpstring("property XOverLinks")]        HRESULT XOverLinks([out, retval] ITVETracks* *pVal);    // returns ITVETracks (Collection)
  427.         [propget, id(7),helpstring("property XOverEnhancement")] HRESULT XOverEnhancement([out, retval] ITVEEnhancement* *pVal);    // special for tree view...
  428.         [          id(8), helpstring("method NewXOverLink")]        HRESULT NewXOverLink([in] BSTR bstrLine21Trigger);
  429.                 // Set date offset used added to dates before expiring.  
  430.                 //  Used when doing playback recorded shows, offseting expire dates by this amount
  431.         [propget, id(9), helpstring("property ExpireOffset")]    HRESULT ExpireOffset([out, retval] DATE *pVal);
  432.         [propput, id(9), helpstring("property ExpireOffset")]    HRESULT ExpireOffset([in] DATE newVal);
  433.                 // return the ITVEAttrTimeQ list giving dates of IUnknowns in this service are due to expire
  434.         [propget, id(10), helpstring("property ExpireQueue")]    HRESULT ExpireQueue([out, retval] ITVEAttrTimeQ* *pVal);
  435.                 // Expires any items earlier than the specified date + ExpireOffset
  436.                 //    If ezactly zero, Date defaults to <NOW>.
  437.         [         id(11),helpstring("method ExpireForDate")]    HRESULT ExpireForDate([in] DATE dateExpireTime);
  438.                 // Mark Service active, only one Active service currently allowed .. turns off all others.
  439.         [propget, id(12), helpstring("IsActive")]                HRESULT IsActive([out, retval] VARIANT_BOOL *fIsActive);
  440.                 // save and restore an arbitrary property on this service... (Useful with ITVENavAid::CacheState())
  441.         [propput, id(13), helpstring("Property")]                HRESULT Property([in] BSTR bstrPropName, BSTR bstrPropVal);
  442.         [propget, id(13), helpstring("Property")]                HRESULT Property([in] BSTR bstrPropName, [out, retval] BSTR *pbstrPropVal);
  443.     };
  444.  
  445.     [
  446.         object,
  447.         uuid(05500205-FAA5-4df9-8246-BFC23AC5CEA8),
  448. //        dual,
  449.         hidden,
  450.         helpstring("ITVEService_Helper Interface"),
  451.         pointer_default(unique)
  452.     ]
  453.     interface ITVEService_Helper : IUnknown
  454.     {
  455.         [          id(1),  helpstring("method ConnectParent")]                HRESULT    ConnectParent([in] ITVESupervisor *pSupervisor);
  456.         [          id(2),  helpstring("method ParseCBAnnouncement")]            HRESULT    ParseCBAnnouncement([in] BSTR bstrFileTrigAdapter,[in] BSTR *pbstrBuff);
  457.         [          id(3),  helpstring("method SetAnncIPValues")]                HRESULT SetAnncIPValues([in] BSTR bstrAnncIPAdapter,[in] BSTR bstrAnncIPAddress,[in] LONG lAnncPort);
  458.         [          id(4),  helpstring("method GetAnncIPValues")]                HRESULT GetAnncIPValues([in] BSTR *pbstrAnncIPAdapter,[in] BSTR *pbstrAnncIPAddress,[in] LONG *plAnncPort);
  459.         [          id(5),  helpstring("method InitXOverEnhancement")]        HRESULT    InitXOverEnhancement();
  460.         [          id(6),  helpstring("method AddToExpireQueue")]            HRESULT    AddToExpireQueue([in] DATE dateExpires, [in] IUnknown *punkItem);
  461.         [          id(7),  helpstring("method ChangeInExpireQueue")]            HRESULT    ChangeInExpireQueue([in] DATE dateExpires, [in] IUnknown *punkItem);
  462.         [          id(8),  helpstring("method RemoveFromExpireQueue")]        HRESULT    RemoveFromExpireQueue([in] IUnknown *punkItem);
  463.         [          id(9),  helpstring("method RemoveEnhFilesFromExpireQueue")]    HRESULT    RemoveEnhFilesFromExpireQueue([in] ITVEEnhancement *pEnhancement);
  464.         [propget, id(10), helpstring("method ExpireQueueChangeCount")]        HRESULT ExpireQueueChangeCount([out, retval] long *pChangeCount);
  465.         [          id(11), helpstring("method RemoveYourself")]                HRESULT    RemoveYourself();
  466.         [          id(12), helpstring("method DumpToBSTR")]                    HRESULT    DumpToBSTR([out] BSTR *pbstrBuff);
  467.     };
  468.  
  469.  
  470.     [
  471.         object,
  472.         uuid(05500305-FAA5-4df9-8246-BFC23AC5CEA8),
  473.         dual,
  474.         helpstring("ITVEFeature Interface (Inherits ITVEService)"),
  475.         pointer_default(unique)
  476.     ]
  477.     interface ITVEFeature : ITVEService
  478.     {
  479.             // New methods just for the Feature
  480.         [id(101),        helpstring("method TuneTo")]                    HRESULT TuneTo([in] BSTR bstrStation, [in] BSTR bstrIPAdapter);
  481.         [id(102),        helpstring("method ReTune")]                    HRESULT ReTune([in] ITVEService *pService);
  482.         [id(103),        helpstring("method BindToSupervisor")]            HRESULT BindToSupervisor([in] ITVESupervisor *pTVESupervisor);
  483.             // these are incoming events called by Supervisor ((_ITVEvents).. Must match
  484.         [id(2101),  helpstring("method NotifyTVETune")]                    HRESULT NotifyTVETune([in] NTUN_Mode tuneMode, [in] ITVEService *pService, [in] BSTR bstrDescription, [in] BSTR bstrIPAdapter);
  485.         [id(2102),  helpstring("method NotifyTVEEnhancementNew")]        HRESULT NotifyTVEEnhancementNew([in] ITVEEnhancement *pEnh);
  486.         [id(2103),  helpstring("method NotifyTVEEnhancementUpdated")]    HRESULT NotifyTVEEnhancementUpdated([in] ITVEEnhancement *pEnh, [in] long lChangedFlags);    // changedFlags : NENH_grfDiff
  487.         [id(2104),  helpstring("method NotifyTVEEnhancementStarting")]    HRESULT NotifyTVEEnhancementStarting([in] ITVEEnhancement *pEnh);
  488.         [id(2105),  helpstring("method NotifyTVEEnhancementExpired")]    HRESULT NotifyTVEEnhancementExpired([in] ITVEEnhancement *pEnh);
  489.         [id(2106),  helpstring("method NotifyTVETriggerNew")]            HRESULT NotifyTVETriggerNew([in] ITVETrigger *pTrigger,[in]  BOOL fActive);
  490.         [id(2107),  helpstring("method NotifyTVETriggerUpdated")]        HRESULT NotifyTVETriggerUpdated([in] ITVETrigger *pTrigger,[in]  BOOL fActive, [in] long lChangedFlags);    // changedFlags : NTRK_grfDiff
  491.         [id(2108),  helpstring("method NotifyTVETriggerExpired")]        HRESULT NotifyTVETriggerExpired([in] ITVETrigger *pTrigger,[in]  BOOL fActive);
  492.         [id(2109),  helpstring("method NotifyTVEPackage")]                HRESULT NotifyTVEPackage([in] NPKG_Mode engPkgMode, [in] ITVEVariation *pVariation, [in] BSTR bstrUUID, [in] long  cBytesTotal, [in] long  cBytesReceived);
  493.         [id(2110),  helpstring("method NotifyTVEFile")]                    HRESULT NotifyTVEFile([in] NFLE_Mode engFileMode, [in] ITVEVariation *pVariation, [in] BSTR bstrUrlName, [in] BSTR bstrFileName);
  494.         [id(2111),  helpstring("method NotifyTVEAuxInfo")]                HRESULT NotifyTVEAuxInfo([in] NWHAT_Mode engAuxInfoMode, [in] BSTR bstrAuxInfoString, [in] long lChangedFlags, [in] long lErrorLine);    // WhatIsIt is NWHAT_Mode - lChangedFlags is NENH_grfDiff or NTRK_grfDiff treated as error bits 
  495.  
  496.     };
  497.  
  498.     [
  499.         object,
  500.         uuid(05500115-FAA5-4df9-8246-BFC23AC5CEA8),
  501.         dual,
  502.         helpstring("ITVEServices Interface"),
  503.         pointer_default(unique)
  504.     ]
  505.     interface ITVEServices : IDispatch
  506.     {
  507.         [propget, id(DISPID_NEWENUM),   restricted, helpstring("property _NewEnum")] HRESULT _NewEnum([out, retval] IUnknown **pCollection);
  508.         [propget, id(COLLECTID_Count),  helpstring("property Count")]        HRESULT Count([out, retval] long *pVal);
  509.         [propget, id(COLLECTID_Item),   helpstring("property Item")]        HRESULT Item([in] VARIANT var, [out, retval] ITVEService * *pVal);
  510.         [         id(COLLECTID_Add),    helpstring("method Add")]            HRESULT Add([in] ITVEService *pService);
  511.         [         id(COLLECTID_Remove), helpstring("method Remove")]        HRESULT Remove([in] VARIANT var);
  512.         [         id(COLLECTID_RemoveAll), helpstring("method RemoveAll")]    HRESULT RemoveAll();
  513.         [         id(COLLECTID_Insert), helpstring("method Insert")]        HRESULT Insert([in] int iLoc, [in] ITVEService *pService);
  514.     };
  515.  
  516.  
  517. // ---------------------------------------------------
  518.  
  519.     [
  520.         object,
  521.         uuid(05500106-FAA5-4df9-8246-BFC23AC5CEA8),
  522.         dual,
  523.         helpstring("ITVESupervisor Interface"),
  524.         pointer_default(unique)
  525.     ]
  526.  
  527.     interface ITVESupervisor : IDispatch
  528.     {
  529.         [propget, id(1), helpstring("property Services")]        HRESULT Services([out, retval] ITVEServices* *pVal);
  530.         [propget, id(2), helpstring("property Description")]    HRESULT Description([out, retval] BSTR *pVal);
  531.         [propput, id(2), helpstring("property Description")]    HRESULT Description([in] BSTR newVal);
  532.         [          id(3), helpstring("method TuneTo")]            HRESULT TuneTo([in] BSTR bstrDescription, [in] BSTR bstrIPAdapter);
  533.         [          id(4), helpstring("method ReTune")]            HRESULT ReTune([in] ITVEService *pService);
  534.  
  535.         [          id(5), helpstring("method NewXOverLink")]        HRESULT NewXOverLink([in] BSTR bstrLine21Trigger);
  536.                 // Expires any items earlier than the specified date + service.ExpireOffset
  537.                 //    If ezactly zero, Date defaults to <NOW>.
  538.         [         id(6), helpstring("method ExpireForDate")]    HRESULT ExpireForDate([in] DATE dateExpireTime);
  539.  
  540.                 // need to be here rather than Helper, since called from Filter, and Supervisor_Helper
  541.                 //    not in the proxy-stub DLL
  542.         [          id(7), restricted, helpstring("method InitStats")]    HRESULT InitStats();
  543.         [          id(8), restricted, helpstring("method GetStats")]        HRESULT GetStats([out] BSTR *pbstrBuff);  // CTVEStats
  544.     };
  545.  
  546.     [
  547.         object,
  548.         uuid(05500206-FAA5-4df9-8246-BFC23AC5CEA8),
  549.         dual,
  550.         hidden,
  551.         helpstring("ITVESupervisor_Helper Interface"),
  552.         pointer_default(unique)
  553.     ]
  554.     interface ITVESupervisor_Helper : IUnknown
  555.     {
  556.         [id(1), helpstring("method ConnectParent")]                HRESULT ConnectParent([in] IUnknown *pUnk);
  557.         [id(2), helpstring("method GetActiveService")]            HRESULT GetActiveService([out] ITVEService **ppActiveService);
  558.         [id(3), helpstring("method GetMCastManager")]            HRESULT GetMCastManager([out] ITVEMCastManager **pMCastManager);
  559.         [id(4), helpstring("method UnpackBuffer")]                HRESULT UnpackBuffer([in] IUnknown *pTVEVariation, [in] unsigned char *m_rgbData, [in] int cBytes);
  560.  
  561.         [id(5), helpstring("method NotifyEnhancement")]            HRESULT NotifyEnhancement([in] NENH_Mode enhMode,[in]  ITVEEnhancement *pEnhancement,[in] long lChangedFlags);    // changedFlags NENH_grfDiff
  562.         [id(6), helpstring("method NotifyTrigger")]                HRESULT NotifyTrigger([in] NTRK_Mode trgMode,[in]  ITVETrack *pTrack,[in]  long lChangedFlags);                    // changedFlags NTRK_grfDiff
  563.         [id(7), helpstring("method NotifyPackage")]                HRESULT NotifyPackage([in] NPKG_Mode pkgMode, [in] ITVEVariation *pVariation, [in] BSTR bstrPackageUUID, [in] long cBytesTotal, [in] long cBytesReceived);
  564.         [id(8), helpstring("method NotifyFile")]                HRESULT NotifyFile([in] NFLE_Mode fileMode, [in] ITVEVariation *pVariation, [in] BSTR bstrURLName, [in] BSTR bstrFileName);
  565.         [id(9), helpstring("method NotifyTune")]                HRESULT NotifyTune([in] NTUN_Mode tuneMode, [in] ITVEService *pService, [in] BSTR bstrDescription, [in] BSTR bstrIPAdapter);
  566.                         // WhatIsIt is NWHAT_Mode - lChangedFlags is NENH_grfDiff or NTRK_grfDiff treated as error bits
  567.         [id(10), helpstring("method NotifyAuxInfo")]            HRESULT NotifyAuxInfo([in] NWHAT_Mode whatMode, [in] BSTR bstrAuxInfoString, [in] long lgrfWhatDiff, [in] long lLineError);
  568.  
  569.         [id(11), helpstring("method NotifyEnhancement_XProxy")]    HRESULT NotifyEnhancement_XProxy([in] NENH_Mode enhMode,[in] ITVEEnhancement *pEnhancement,[in] long lChangedFlags);    // changedFlags NENH_grfDiff
  570.         [id(12), helpstring("method NotifyTrigger_XProxy")]        HRESULT NotifyTrigger_XProxy([in] NTRK_Mode trgMode,[in]  ITVETrack *pTrack,[in]  long lChangedFlags);                    // changedFlags NTRK_grfDiff
  571.         [id(13), helpstring("method NotifyPackage_XProxy")]        HRESULT NotifyPackage_XProxy( NPKG_Mode pkgMode, ITVEVariation *pVariation,BSTR bstrPackageUUID, long cBytesTotal,long cBytesReceived);
  572.         [id(14), helpstring("method NotifyFile_XProxy")]        HRESULT NotifyFile_XProxy([in] NFLE_Mode fileMode, [in] ITVEVariation *pVariation, [in] BSTR bstrURLName, [in] BSTR bstrFileName);
  573.         [id(15), helpstring("method NotifyTune_XProxy")]        HRESULT NotifyTune_XProxy([in] NTUN_Mode tuneMode, [in] ITVEService *pService, [in] BSTR bstrDescription, [in] BSTR bstrIPAdapter);
  574.         [id(16), helpstring("method NotifyAuxInfo_XProxy")]        HRESULT NotifyAuxInfo_XProxy([in] NWHAT_Mode whatMode, [in] BSTR bstrAuxInfoString, [in] long lgrfWhatDiff,[in] long lLineError);
  575.  
  576.         [propget, id(17),  helpstring("property HaltFlags")]    HRESULT    HaltFlags([out, retval] LONG *plGrfHaltFlags);
  577.         [propput, id(17),  helpstring("property HaltFlags")]    HRESULT HaltFlags([in] LONG lGrfHaltFlags);
  578.  
  579.         [          id(18),  helpstring("method RemoveAllListenersOnAdapter")]    HRESULT RemoveAllListenersOnAdapter([in] BSTR bstrAdapter);
  580.         [propget, id(19),  helpstring("method PossibleIPAdapterAddress")]        HRESULT PossibleIPAdapterAddress([in] int iAdapter, [out,retval] BSTR *pbstrIPAdapterAddr);
  581.         [          id(20), helpstring("method DumpToBSTR")]                HRESULT DumpToBSTR([out] BSTR *pbstrBuff);
  582.  
  583.         [propget, id(21), helpstring("property SupervisorGITProxy")]        HRESULT SupervisorGITProxy([out] ITVESupervisorGITProxy **ppSupervisorGITProxy);        // internal GIT refcounted pointer to supervisor 
  584.     };
  585.  
  586.     [
  587.         hidden,
  588.         object,
  589.         uuid(05500306-FAA5-4df9-8246-BFC23AC5CEA8),
  590.         dual,
  591.         helpstring("ITVESupervisorGITProxy Interface"),
  592.         pointer_default(unique)
  593.     ]
  594.  
  595.     interface ITVESupervisorGITProxy: IUnknown
  596.     {
  597.         [propget, id(1), helpstring("property Supervisor")]        HRESULT Supervisor([out, retval] ITVESupervisor **ppVal);
  598.         [propput, id(1), helpstring("property Supervisor")]        HRESULT Supervisor([in] ITVESupervisor  *pVal);
  599.     };
  600.  
  601. // ---------------------------------------------------
  602.  
  603.             // ---------------------------------
  604.     [
  605.         object,
  606.         uuid(05500121-FAA5-4df9-8246-BFC23AC5CEA8),
  607.         dual,
  608.         helpstring("ITVEAttrMap Interface"),
  609.         pointer_default(unique)
  610.     ]
  611.     interface ITVEAttrMap : IDispatch
  612.     {
  613.         [propget, id(DISPID_NEWENUM), restricted, helpstring("property _NewEnum")] HRESULT _NewEnum([out, retval] IUnknown **pCollection);
  614.         [propget, id(COLLECTID_Count),     helpstring("property Count")]   HRESULT Count([out, retval] long *pVal);
  615.         [propget, id(COLLECTID_Item),      helpstring("property Item")]    HRESULT Item([in] VARIANT var, [out, retval] BSTR *pVal);
  616.         [propget, id(COLLECTID_Key),       helpstring("property Key")]     HRESULT Key([in] VARIANT var, [out, retval] BSTR *pKey);
  617.         [         id(COLLECTID_Add),       helpstring("method Add")]       HRESULT Add([in] BSTR bstrKey, [in] BSTR bstrValue);
  618.         [         id(COLLECTID_Replace),   helpstring("method Replace")]   HRESULT Replace([in] BSTR bstrKey, [in] BSTR bstrValue);
  619.         [         id(COLLECTID_Remove),    helpstring("method Remove")]    HRESULT Remove([in] VARIANT var);
  620.         [         id(COLLECTID_RemoveAll), helpstring("method RemoveAll")] HRESULT RemoveAll();
  621.         [         id(7),                   helpstring("method Add1")]      HRESULT Add1(BSTR bstrValue);
  622.         [         id(8),                   helpstring("method DumpToBSTR")] HRESULT DumpToBSTR([out] BSTR *pDump);
  623.     };
  624.  
  625. // ---------------------------------------------------
  626.  
  627.             // ---------------------------------
  628.     [
  629.         object,
  630.         uuid(05500122-FAA5-4df9-8246-BFC23AC5CEA8),
  631.         dual,
  632.         helpstring("ITVEAttrTimeQ Interface"),
  633.         pointer_default(unique)
  634.     ]
  635.     interface ITVEAttrTimeQ : IDispatch
  636.     {
  637.         [propget, id(DISPID_NEWENUM), restricted, helpstring("property _NewEnum")] HRESULT _NewEnum([out, retval] IUnknown **pCollection);
  638.         [propget, id(COLLECTID_Count),     helpstring("property Count")]   HRESULT Count([out, retval] long *pVal);
  639.         [propget, id(COLLECTID_Item),      helpstring("property Item")]    HRESULT Item([in] VARIANT var, [out, retval] IUnknown **ppVal);
  640.         [propget, id(COLLECTID_Key),       helpstring("property Key")]     HRESULT Key([in] VARIANT var, [out, retval] DATE *pKey);
  641.         [         id(COLLECTID_Add),       helpstring("method Add")]       HRESULT Add([in] DATE dateKey, [in] IUnknown *pUnk);
  642.         [         id(COLLECTID_Remove),    helpstring("method Remove")]    HRESULT Remove([in] VARIANT var);
  643.         [         id(COLLECTID_RemoveAll), helpstring("method RemoveAll")] HRESULT RemoveAll();
  644.         [         id(COLLECTID_Update),    helpstring("method Update")]       HRESULT Update([in] DATE dateKey, [in] IUnknown *pUnk);
  645.         [         id(9),                   helpstring("method LockRead")]     HRESULT LockRead();
  646.         [         id(10),                   helpstring("method LockWrite")]     HRESULT LockWrite();
  647.         [         id(11),                   helpstring("method Unlock")]         HRESULT Unlock();
  648.         [         id(12),                   helpstring("method RemoveSimple")]    HRESULT RemoveSimple([in] VARIANT var);    // remove without calling var->RemoveYourself()
  649.         [         id(13),                  helpstring("method DumpToBSTR")] HRESULT DumpToBSTR([out] BSTR *pDump);
  650.     };
  651.  
  652. // ---------------------------------------------------
  653.     [
  654.         object,
  655.         uuid(05500130-FAA5-4df9-8246-BFC23AC5CEA8),
  656.         dual,
  657.         helpstring("ITVEMCast Interface"),
  658.         pointer_default(unique)
  659.     ]
  660.     interface ITVEMCast : IDispatch
  661.     {
  662.         [propget, id(1),  helpstring("property IPAdapter")]        HRESULT IPAdapter([out, retval] BSTR *pVal);
  663.         [propput, id(1),  helpstring("property IPAdapter")]        HRESULT IPAdapter([in] BSTR newVal);
  664.         [propget, id(2),  helpstring("property IPAddress")]        HRESULT IPAddress([out, retval] BSTR *pVal);
  665.         [propput, id(2),  helpstring("property IPAddress")]        HRESULT IPAddress([in] BSTR newVal);
  666.         [propget, id(3),  helpstring("property IPPort")]        HRESULT IPPort([out, retval] long *pVal);
  667.         [propput, id(3),  helpstring("property IPPort")]        HRESULT IPPort([in] long newVal);
  668.         [          id(4),  helpstring("method Join")]            HRESULT Join();
  669.         [          id(5),  helpstring("method Leave")]            HRESULT Leave();
  670.         [propget, id(6),  helpstring("property IsJoined")]        HRESULT IsJoined([out, retval] VARIANT_BOOL *pVal);
  671.         [propget, id(7),  helpstring("property IsSuspended")]    HRESULT IsSuspended([out, retval] VARIANT_BOOL *pVal);
  672.         [          id(8),  helpstring("method Suspend")]            HRESULT Suspend(VARIANT_BOOL fSuspend);
  673.         [propget, id(9),  helpstring("property PacketCount")]    HRESULT PacketCount([out, retval] long *pVal);
  674.         [propget, id(10), helpstring("property ByteCount")]        HRESULT ByteCount([out, retval] long *pVal);
  675.         [          id(11), helpstring("method KeepStats")]        HRESULT KeepStats(VARIANT_BOOL fKeepStats);
  676.         [          id(12), helpstring("method ResetStats")]        HRESULT ResetStats();
  677.         [          id(13), helpstring("method SetReadCallback")]    HRESULT SetReadCallback([in] int nBuffers, [in] int iPrioritySetback, [in] IUnknown *pVal);
  678.         [          id(14), helpstring("method ConnectManager")]    HRESULT ConnectManager([in] ITVEMCastManager* pVal);
  679.         [propget, id(15), helpstring("property Manager")]        HRESULT Manager([out, retval] IUnknown* *ppVal);
  680.         [propget, id(16), helpstring("property QueueThreadId")]    HRESULT QueueThreadId([out, retval] long* pVal);
  681.         [propput, id(16), helpstring("property QueueThreadId")]    HRESULT QueueThreadId([in] long pVal);
  682.         [propget, id(17), helpstring("property WhatType")]        HRESULT WhatType([out, retval] NWHAT_Mode *pWhatType);
  683.         [propput, id(17), helpstring("property WhatType")]        HRESULT WhatType([in] NWHAT_Mode whatType);
  684.     };
  685.  
  686.     [
  687.         object,
  688.         uuid(05500131-FAA5-4df9-8246-BFC23AC5CEA8),
  689.         dual,
  690.         helpstring("ITVEMCasts Interface"),
  691.         pointer_default(unique)
  692.     ]
  693.     interface ITVEMCasts : IDispatch
  694.     {
  695.         [propget, id(DISPID_NEWENUM), restricted, helpstring("property _NewEnum")] HRESULT _NewEnum([out, retval] IUnknown **pCollection);
  696.         [propget, id(COLLECTID_Count),  helpstring("property Count")]        HRESULT Count([out, retval] long *pVal);
  697.         [propget, id(COLLECTID_Item),   helpstring("property Item")]        HRESULT Item([in] VARIANT var, [out, retval] ITVEMCast * *pVal);
  698.         [         id(COLLECTID_Add),    helpstring("method Add")]            HRESULT Add([in] ITVEMCast *punk);
  699.         [         id(COLLECTID_Remove), helpstring("method Remove")]        HRESULT Remove([in] VARIANT var);
  700.         [         id(COLLECTID_RemoveAll), helpstring("method RemoveAll")]    HRESULT RemoveAll();
  701.     };
  702.     [
  703.         object,
  704.         uuid(05500132-FAA5-4df9-8246-BFC23AC5CEA8),
  705.         dual,
  706.         helpstring("ITVEMCastManager Interface"),
  707.         pointer_default(unique)
  708.     ]
  709.     interface ITVEMCastManager : IDispatch
  710.     {
  711.         [propget, id(1), helpstring("property MCasts")]            HRESULT MCasts([out, retval] ITVEMCasts* *pVal);
  712.         [propget, id(2), helpstring("property Supervisor")]        HRESULT Supervisor([out, retval] ITVESupervisor* *ppSupervisor);
  713.         [propput, id(2), helpstring("property Supervisor")]        HRESULT Supervisor([in] ITVESupervisor *pSupervisor);
  714.         [          id(3), helpstring("method AddMulticast")]        HRESULT AddMulticast([in] NWHAT_Mode whatType, [in] BSTR bsAdapter, [in] BSTR bsIPAddress, [in] LONG ulIPPort, [in] LONG cBuffers, [in] IUnknown *pICallback, [out] ITVEMCast **ppMCastAdded);
  715.         [          id(4), helpstring("method FindMulticast")]    HRESULT FindMulticast([in] BSTR bstrIPAdapter, [in] BSTR bstrIPAddress, [in] LONG sPort,  [out] ITVEMCast **ppMCast, [out] LONG *pcMatches);
  716.         [         id(5), helpstring("method RemoveMulticast")]  HRESULT RemoveMulticast(ITVEMCast *pMCast);
  717.         [          id(6), helpstring("method JoinAll")]            HRESULT JoinAll();
  718.         [          id(7), helpstring("method LeaveAll")]            HRESULT LeaveAll();
  719.         [          id(8), helpstring("method SuspendAll")]        HRESULT SuspendAll([in] VARIANT_BOOL fSuspend);
  720.         [          id(9), helpstring("method Lock_")]            HRESULT Lock_();
  721.         [          id(10), helpstring("method Unlock_")]            HRESULT Unlock_();
  722.         [          id(11), helpstring("method DumpStatsToBSTR")]    HRESULT DumpStatsToBSTR(int iType, BSTR *pBSTR);
  723.         [propget, id(13), helpstring("property HaltFlags")]        HRESULT    HaltFlags([out, retval] LONG *plGrfHaltFlags);
  724.         [propput, id(13), helpstring("property HaltFlags")]        HRESULT HaltFlags([in] LONG lGrfHaltFlags);
  725.     };
  726.  
  727.     [
  728.         object,
  729.         uuid(05500232-FAA5-4df9-8246-BFC23AC5CEA8),
  730. //        dual,
  731.         hidden,
  732.         helpstring("ITVEMCastManager_Helper Interface"),
  733.         pointer_default(unique)
  734.     ]
  735.     interface ITVEMCastManager_Helper : IUnknown
  736.     {
  737.         [          id(1), helpstring("method DumpString")]            HRESULT DumpString(BSTR bstrDump);    // writes string to a Dump.txt
  738.         [          id(2), helpstring("method CreateQueueThread")]    HRESULT CreateQueueThread();
  739.         [          id(3), helpstring("method KillQueueThread")]        HRESULT KillQueueThread();
  740.         [          id(4), helpstring("method PostToQueueThread")]    HRESULT PostToQueueThread(UINT uiMsg, WPARAM wParam, LPARAM lParam);
  741.         [          id(5), helpstring("method GetPacketCounts")]        HRESULT GetPacketCounts([out] LONG *pCPackets, [out] LONG *pCPacketsDropped, [out] LONG *pCPacketsDroppedTotal);
  742.     };
  743.  
  744.  
  745.     [
  746.         object,
  747.         uuid(05500133-FAA5-4df9-8246-BFC23AC5CEA8),
  748.         dual,
  749.         helpstring("ITVEMCastCallback Interface"),
  750.         pointer_default(unique)
  751.     ]
  752.     interface ITVEMCastCallback : IDispatch
  753.     {
  754.         [id(1), helpstring("method SetMCast")]                HRESULT SetMCast(ITVEMCast *pMCast);
  755.         [id(2), helpstring("method ProcessPacket")]            HRESULT ProcessPacket(unsigned char *pchBuffer, long cBytes, long lPacketId);
  756.         [id(3), helpstring("method PostPacket")]            HRESULT PostPacket(unsigned char *pchBuffer, long cBytes, long wPacketId);
  757.     };
  758.  
  759.  
  760.  
  761.  
  762.                     // ................ specific callbacks ..............
  763.     [
  764.         object,
  765.         uuid(05500141-FAA5-4df9-8246-BFC23AC5CEA8),
  766.         dual,
  767.         helpstring("ITVECBAnnc Interface"),
  768.         pointer_default(unique)
  769.     ]
  770.     interface ITVECBAnnc : IDispatch
  771.     {
  772.         [id(1), helpstring("method Init")] HRESULT Init(BSTR bstrFileTrigAdapter, ITVEService *pService);            // want ITVEService here
  773.     };
  774.     [
  775.         object,
  776.         uuid(05500142-FAA5-4df9-8246-BFC23AC5CEA8),
  777.         dual,
  778.         helpstring("ITVECBTrig Interface"),
  779.         pointer_default(unique)
  780.     ]
  781.     interface ITVECBTrig : IDispatch
  782.     {
  783.         [id(1), helpstring("method Init")] HRESULT Init(ITVEVariation *pIVariation);
  784.     };
  785.     [
  786.         object,
  787.         uuid(05500143-FAA5-4df9-8246-BFC23AC5CEA8),
  788.         dual,
  789.         helpstring("ITVECBFile Interface"),
  790.         pointer_default(unique)
  791.     ]
  792.     interface ITVECBFile : IDispatch
  793.     {
  794.         [id(1), helpstring("method Init")] HRESULT Init(ITVEVariation *pIVariation, ITVEService *pIService);
  795.     };
  796.     [
  797.         object,
  798.         uuid(05500144-FAA5-4df9-8246-BFC23AC5CEA8),
  799.         dual,
  800.         helpstring("ITVECBDummy Interface"),
  801.         pointer_default(unique)
  802.     ]
  803.     interface ITVECBDummy : IDispatch
  804.     {
  805.         [id(1), helpstring("method Init")] HRESULT Init(int i);
  806.     };
  807.  
  808.  
  809. // ----------------------------------------------------
  810.     [
  811.         object,
  812.         uuid(05500151-FAA5-4df9-8246-BFC23AC5CEA8),
  813.         dual,
  814.         helpstring("ITVEFile Interface"),
  815.         pointer_default(unique)
  816.     ]
  817.     interface ITVEFile : IDispatch
  818.     {
  819.         [          id(1),  helpstring("method InitializeFile")]        HRESULT InitializeFile([in] ITVEVariation *pVaria, [in] BSTR bsName, [in] BSTR bsLoc, [in] DATE dateExpires);
  820.         [          id(2),  helpstring("method InitializePackage")]    HRESULT InitializePackage([in] ITVEVariation *pVaria, [in] BSTR bsName, [in] BSTR bsLoc, [in] DATE dateExpires);
  821.         [propget, id(3),  helpstring("property Description")]        HRESULT Description([out, retval] BSTR* pBstrDesc);
  822.         [propget, id(4),  helpstring("property Location")]            HRESULT Location([out, retval] BSTR* pBstrLoc);
  823.         [propget, id(5),  helpstring("property ExpireTime")]        HRESULT ExpireTime([out, retval] DATE* pDateExpires);
  824.         [propget, id(6),  helpstring("property IsPackage")]            HRESULT IsPackage([out, retval] BOOL* pfVal);
  825.         [propget, id(7),  helpstring("property Variation")]            HRESULT Variation([out, retval] ITVEVariation* *pVal);
  826.         [propget, id(8),  helpstring("property Service")]            HRESULT Service([out, retval] ITVEService* *pVal);
  827.         [         id(9),  helpstring("method RemoveYourself")]        HRESULT RemoveYourself();
  828.         [          id(10), helpstring("method DumpToBSTR")]            HRESULT DumpToBSTR([out] BSTR *pBstrDump);
  829.     };
  830.  
  831.  
  832. // ----------------------------------------------------
  833. //   ITVENavAid
  834. // ----------------------------------------------------
  835.  
  836. [
  837.     object,
  838.     uuid (05500160-FAA5-4df9-8246-BFC23AC5CEA8),
  839.     dual,
  840.     helpstring("ITVENavAid Interface"),
  841.     pointer_default(unique)
  842. ]
  843. interface ITVENavAid : IDispatch
  844. {
  845.         [propput, id(1),  helpstring("property WebBrowserApp")]            HRESULT WebBrowserApp([in] IDispatch *pWebBrowser);
  846.         [propget, id(1),  helpstring("property WebBrowserApp")]            HRESULT WebBrowserApp([out, retval] IDispatch **ppWebBrowser);
  847.         [propget, id(2),  helpstring("property TVETriggerCtrl")]        HRESULT TVETriggerCtrl([out, retval] ITVETriggerCtrl **ppTriggerCtrl);
  848.          [propput, id(3),  helpstring("property EnableAutoTriggering")]    HRESULT EnableAutoTriggering([in] long lAutoTriggers);
  849.         [propget, id(3),  helpstring("property EnableAutoTriggering")]    HRESULT EnableAutoTriggering([out, retval] long *plAutoTriggers);
  850.         [propget, id(4),  helpstring("property ActiveVariation")]        HRESULT ActiveVariation([out, retval] ITVEVariation **ppActiveVariation);
  851.         [propput, id(4),  helpstring("property ActiveVariation")]        HRESULT ActiveVariation([in] ITVEVariation *pActiveVariation);
  852.         [propget, id(5),  helpstring("property TVEFeature")]            HRESULT TVEFeature([out, retval] ITVEFeature **ppTVEFeature);
  853.         [propget, id(6),  helpstring("property CacheState")]            HRESULT CacheState([out, retval] BSTR *pbstrBuff);
  854.         [propput, id(6),  helpstring("property CacheState")]            HRESULT CacheState([in] BSTR bstrBuff);
  855.         [        , id(7),  helpstring("method NavUsingTVETrigger")]        HRESULT NavUsingTVETrigger([in] ITVETrigger *pTrigger, [in] long lForceNav, [in] long lForceExec);
  856.         [        , id(8),  helpstring("method ExecScript")]                HRESULT ExecScript([in] BSTR bstrScript, [in] BSTR bstrLanguage);
  857.         [        , id(9),  helpstring("method Navigate")]                HRESULT Navigate([in] VARIANT *URL,[in] VARIANT *Flags,[in] VARIANT *TargetFrameName, [in] VARIANT *PostData, [in] VARIANT *Headers);
  858.         [propget, id(10), helpstring("property CurrTVEName")]            HRESULT CurrTVEName([out, retval] BSTR *pbstrName);
  859.         [propget, id(11), helpstring("property CurrTVEURL")]            HRESULT CurrTVEURL([out, retval] BSTR *pbstrURL);
  860.  
  861.         // these are incoming sinkn events called by Supervisor ((_ITVEvents).. ID's Must match (I think)
  862.         // &DIID__ITVEEvents
  863.         [id(2101),  helpstring("method NotifyTVETune")]                    HRESULT NotifyTVETune([in] NTUN_Mode tuneMode, [in] ITVEService *pService, [in] BSTR bstrDescription, [in] BSTR bstrIPAdapter);
  864.         [id(2102),  helpstring("method NotifyTVEEnhancementNew")]        HRESULT NotifyTVEEnhancementNew([in] ITVEEnhancement *pEnh);
  865.         [id(2103),  helpstring("method NotifyTVEEnhancementUpdated")]    HRESULT NotifyTVEEnhancementUpdated([in] ITVEEnhancement *pEnh, [in] long lChangedFlags);    // changedFlags : NENH_grfDiff
  866.         [id(2104),  helpstring("method NotifyTVEEnhancementStarting")]    HRESULT NotifyTVEEnhancementStarting([in] ITVEEnhancement *pEnh);
  867.         [id(2105),  helpstring("method NotifyTVEEnhancementExpired")]    HRESULT NotifyTVEEnhancementExpired([in] ITVEEnhancement *pEnh);
  868.         [id(2106),  helpstring("method NotifyTVETriggerNew")]            HRESULT NotifyTVETriggerNew([in] ITVETrigger *pTrigger,[in]  BOOL fActive);
  869.         [id(2107),  helpstring("method NotifyTVETriggerUpdated")]        HRESULT NotifyTVETriggerUpdated([in] ITVETrigger *pTrigger,[in]  BOOL fActive, [in] long lChangedFlags);    // changedFlags : NTRK_grfDiff
  870.         [id(2108),  helpstring("method NotifyTVETriggerExpired")]        HRESULT NotifyTVETriggerExpired([in] ITVETrigger *pTrigger,[in]  BOOL fActive);
  871.         [id(2109),  helpstring("method NotifyTVEPackage")]                HRESULT NotifyTVEPackage([in] NPKG_Mode engPkgMode, [in] ITVEVariation *pVariation, [in] BSTR bstrUUID, [in] long  cBytesTotal, [in] long  cBytesReceived);
  872.         [id(2110),  helpstring("method NotifyTVEFile")]                    HRESULT NotifyTVEFile([in] NFLE_Mode engFileMode, [in] ITVEVariation *pVariation, [in] BSTR bstrUrlName, [in] BSTR bstrFileName);
  873.         [id(2111),  helpstring("method NotifyTVEAuxInfo")]                HRESULT NotifyTVEAuxInfo([in] NWHAT_Mode engAuxInfoMode, [in] BSTR bstrAuxInfoString, [in] long lChangedFlags, [in] long lErrorLine);    // WhatIsIt is NWHAT_Mode - lChangedFlags is NENH_grfDiff or NTRK_grfDiff treated as error bits 
  874.  
  875.  
  876.         // &DIID_DWebBrowserEvents2, 
  877.  
  878.         [id(0x66),  helpstring("method NotifyStatusTextChange")]        HRESULT NotifyStatusTextChange(BSTR Text);
  879.         [id(0x6c),  helpstring("method NotifyProgressChange")]            HRESULT NotifyProgressChange(LONG Progress, LONG ProgressMax);
  880.         [id(0x69),  helpstring("method NotifyCommandStateChange")]        HRESULT NotifyCommandStateChange(LONG Command, VARIANT_BOOL Enable);
  881.         [id(0x6a),  helpstring("method NotifyDownloadBegin")]            HRESULT NotifyDownloadBegin();
  882.         [id(0x68),  helpstring("method NotifyDownloadComplete")]        HRESULT NotifyDownloadComplete();
  883.         [id(0x71),  helpstring("method NotifyTitleChange")]                HRESULT NotifyTitleChange(BSTR Text);
  884.         [id(0x70),  helpstring("method NotifyPropertyChange")]            HRESULT NotifyPropertyChange(BSTR szProperty);
  885.         [id(0xfa),  helpstring("method NotifyBeforeNavigate2")]            HRESULT NotifyBeforeNavigate2(IDispatch * pDisp, VARIANT * URL, VARIANT * Flags, VARIANT * TargetFrameName, VARIANT * PostData, VARIANT * Headers, VARIANT_BOOL * Cancel);
  886.         [id(0xfb),  helpstring("method NotifyNewWindow2")]                HRESULT NotifyNewWindow2(IDispatch * * ppDisp, VARIANT_BOOL * Cancel);
  887.         [id(0xfc),  helpstring("method NotifyNavigateComplete2")]        HRESULT NotifyNavigateComplete2(IDispatch * pDisp, VARIANT * URL);
  888.         [id(0x103), helpstring("method NotifyDocumentComplete")]        HRESULT NotifyDocumentComplete(IDispatch * pDisp, VARIANT * URL);
  889.         [id(0xfd),  helpstring("method NotifyOnQuit")]                    HRESULT NotifyOnQuit();
  890.         [id(0xfe),  helpstring("method NotifyOnVisible")]                HRESULT NotifyOnVisible(VARIANT_BOOL Visible);
  891.         [id(0xff),  helpstring("method NotifyOnToolBar")]                HRESULT NotifyOnToolBar(VARIANT_BOOL ToolBar);
  892.         [id(0x100), helpstring("method NotifyOnMenuBar")]                HRESULT NotifyOnMenuBar(VARIANT_BOOL MenuBar);
  893.         [id(0x101), helpstring("method NotifyOnStatusBar")]                HRESULT NotifyOnStatusBar(VARIANT_BOOL StatusBar);
  894.         [id(0x102), helpstring("method NotifyOnFullScreen")]            HRESULT NotifyOnFullScreen(VARIANT_BOOL FullScreen);
  895.         [id(0x104), helpstring("method NotifyOnTheaterMode")]            HRESULT NotifyOnTheaterMode(VARIANT_BOOL TheaterMode);
  896.  
  897. } ;
  898.                 // ------
  899.                 //    these interfaces for running without the VidControl
  900.                 //    - idea is to create CoCreate supervisor, and 'put' it here.
  901. [
  902.     object,
  903.     uuid (05500360-FAA5-4df9-8246-BFC23AC5CEA8),
  904.     hidden,
  905. //    dual,
  906.     helpstring("ITVENavAid_NoVidCtl Interface"),
  907.     pointer_default(unique)
  908. ]
  909. interface ITVENavAid_NoVidCtl : IUnknown
  910. {
  911.     [propput ,id(1),  helpstring("property NoVidCtl_Supervisor")]        HRESULT NoVidCtl_Supervisor([in] ITVESupervisor *pSuper);                    
  912.     [propget ,id(1),  helpstring("property NoVidCtl_Supervisor")]        HRESULT NoVidCtl_Supervisor([out,retval] ITVESupervisor **ppSuper);                    
  913.     
  914. } ;
  915.  
  916.                 // ------
  917. [
  918.     object,
  919.     uuid (05500260-FAA5-4df9-8246-BFC23AC5CEA8),
  920.     hidden,
  921.     dual,                                            // - used in proxying, must be marked Dual regardless of what .net says
  922.     helpstring("ITVENavAid_Helper Interface"),
  923.     pointer_default(unique)
  924. ]
  925. interface ITVENavAid_Helper : IUnknown
  926. {
  927.         [          id(1),  helpstring("method LocateVidAndTriggerCtrls")]            HRESULT LocateVidAndTriggerCtrls([out] IDispatch **pVidCtrl, [out] IDispatch **pTrigCtrl);
  928.         [          id(2),  helpstring("method NotifyTVETriggerUpdated_XProxy")]        HRESULT NotifyTVETriggerUpdated_XProxy([in] ITVETrigger *pTrigger,[in]  BOOL fActive, [in] long lChangedFlags);    // changedFlags : NTRK_grfDiff
  929.         [         id(3),  helpstring("method ReInitCurrNavState")]                    HRESULT ReInitCurrNavState([in] long lReserved);
  930.     
  931. } ;    
  932. // ----------------------------------------------------
  933. //        Filter interfaces
  934. // -----------------------------------------------------
  935. [
  936.     object,
  937.     uuid (05500180-FAA5-4df9-8246-BFC23AC5CEA8),
  938. //    dual,
  939.     helpstring("TVEFilter Interface"),
  940.     pointer_default(unique)
  941. ]
  942. interface ITVEFilter : IUnknown
  943. {
  944. //    [propget, id(2),  helpstring("property Supervisor")]        HRESULT Supervisor([out, retval] IDispatch **ppSuperDsp);
  945.     [propget, id(3),  helpstring("property SupervisorPunk")]    HRESULT SupervisorPunk([out, retval] IUnknown **ppSuperPunk);
  946.  
  947.     [propget, id(4),  helpstring("property IPAdapterAddress")]    HRESULT IPAdapterAddress([out, retval] BSTR *pbstrIPAddr);
  948.     [propput, id(4), helpstring("property IPAdapterAddress")]    HRESULT IPAdapterAddress([in] BSTR bstrIPAddr);
  949.  
  950.     [propget, id(5),  helpstring("property StationID")]            HRESULT StationID([out, retval] BSTR *pbstrStationID);
  951.     [propput, id(5),  helpstring("property StationID")]            HRESULT StationID([in] BSTR bstrStationID);
  952.  
  953.     [propget, id(6),  helpstring("property MulticastList")]            HRESULT MulticastList([out, retval] BSTR *pbstrMulticastList);
  954.     [propget, id(7),  helpstring("property AdapterDescription")]    HRESULT AdapterDescription([out, retval] BSTR *pbstrAdapterDescription);
  955.  
  956.     [          id(8),  helpstring("method ReTune")]                HRESULT ReTune();
  957.  
  958.                             // should move to FilterHelper
  959.     [propget, id(9),  helpstring("property HaltFlags")]            HRESULT    HaltFlags([out, retval] LONG *plGrfHaltFlags);
  960.     [propput, id(9),  helpstring("property HaltFlags")]            HRESULT HaltFlags([in] LONG lGrfHaltFlags);
  961.  
  962.     [          id(10), helpstring("method ParseCCBytePair")]        HRESULT    ParseCCBytePair([in] LONG lByteType, [in] BYTE byte1, [in] BYTE byte2);
  963.  
  964.     [propget, id(11), helpstring("property IPSinkAdapterAddress")]    HRESULT IPSinkAdapterAddress([out, retval] BSTR *pbstrIPAddr);
  965.  
  966. //    [propput, id(12),  helpstring("property SupervisorHelperPunk")]        HRESULT get_SupervisorHelperPunk([out] IUnknown **ppSuperHelper);
  967.  
  968. };
  969.  
  970. // ------------------------------------------------------
  971. [
  972.     object,
  973.     uuid (05500280-FAA5-4df9-8246-BFC23AC5CEA8),
  974.     hidden,
  975.     helpstring("ITVEFilter_Helper Interface"),
  976.     pointer_default(unique)
  977. ]
  978. interface ITVEFilter_Helper : IUnknown
  979. {
  980. //    [id(1),helpstring("method ConnectParent")]        HRESULT ConnectParent([in] ITVEEnhancement *pEnhancement);
  981. } ;
  982.  
  983.  
  984. [
  985.     object,
  986.     uuid (05500190-FAA5-4df9-8246-BFC23AC5CEA8),
  987.     dual,
  988.     helpstring("ITVETriggerCtrl Interface"),
  989.     pointer_default(unique)
  990. ]
  991. interface ITVETriggerCtrl : IDispatch
  992. {
  993.     [propput, id(1)] HRESULT enabled([in] VARIANT_BOOL newVal);
  994.     [propget, id(1)] HRESULT enabled([out, retval] VARIANT_BOOL* pVal);
  995.     [propget, id(2)] HRESULT sourceID([out, retval] BSTR* pbstrID);
  996.     [propput, id(3)] HRESULT releasable([in] VARIANT_BOOL newVal);
  997.     [propget, id(3)] HRESULT releasable([out, retval] VARIANT_BOOL* pVal);
  998.     [propget, id(4)] HRESULT backChannel([out, retval] BSTR* pVal);
  999.     [propget, id(5)] HRESULT contentLevel([out, retval] double* pVal);
  1000. } ;
  1001.  
  1002. [
  1003.     object,
  1004.     uuid (05500191-FAA5-4df9-8246-BFC23AC5CEA8),
  1005.     hidden,
  1006.     helpstring("ITVETriggerCtrl_Helper Interface"),
  1007.     pointer_default(unique)
  1008. ]
  1009. interface ITVETriggerCtrl_Helper : IUnknown
  1010. {
  1011.     [propput, id(1)] HRESULT sourceID([in] BSTR pSourceUUID);            // cache the SourceID
  1012.     [propget, id(2)] HRESULT TopLevelPage([out, retval] BSTR *pURL);    // return the cached URL (???) of the top web page 
  1013.  
  1014. } ;
  1015.  
  1016. // ---------------------------------------------------------------------------------------
  1017. // ***************************************************************************************
  1018. // ----------------------------------------------------------------------------------------
  1019. [
  1020.     uuid(1700C001-6666-4f66-B1E2-BF3C9FBB9BA6),        // new
  1021.     version(1.0),
  1022.     helpstring("Microsoft TVE Library and DShow Filter")
  1023. ]
  1024. library MSTvELib
  1025. {
  1026.     importlib("stdole32.tlb");
  1027.     importlib("stdole2.tlb");
  1028. // -------------------------------------------------------
  1029. typedef enum NENH_grfDiff            // need to fill out..
  1030. {
  1031.     NENH_grfNone                = 0x0000,                // no flags
  1032.     NENH_grfDescription            = 0x00000001,
  1033.     NENH_grfIsPrimary            = 0x00000002,
  1034.     NENH_grfProtocolVersion        = 0x00000004,
  1035.     NENH_grfSessionUserName        = 0x00000008,
  1036.     NENH_grfSessionId            = 0x00000010,
  1037.     NENH_grfSessionVersion        = 0x00000020,
  1038.     NENH_grfSessionIPAddress    = 0x00000040,
  1039.     NENH_grfSessionName            = 0x00000080,
  1040.     NENH_grfEmailAddresses        = 0x00000100,
  1041.     NENH_grfPhoneNumbers        = 0x00000200,
  1042.     NENH_grfUUID                = 0x00000400,
  1043.     NENH_grfStartTime            = 0x00000800,
  1044.     NENH_grfStopTime            = 0x00001000,
  1045.     NENH_grfType                 = 0x00002000,
  1046.     NENH_grfTveType                = 0x00004000,
  1047.     NENH_grfTveSize                = 0x00008000,
  1048.     NENH_grfTveLevel            = 0x00010000,
  1049.     NENH_grfAttributes            = 0x00020000,
  1050.     NENH_grfRest                = 0x00040000,
  1051.     NENH_grfVariationAdded        = 0x00080000,
  1052.     NENH_grfVariationRemoved    = 0x00100000,
  1053.     NENH_grfDescriptionURI        = 0x00200000,
  1054.     NENH_grfSomeVarIP            = 0x00400000,
  1055.     NENH_grfSomeVarText            = 0x00800000,
  1056.     NENH_grfSomeVarBandwidth    = 0x01000000,
  1057.     NENH_grfSomeVarLanguages     = 0x02000000,
  1058.     NENH_grfSomeVarAttribute    = 0x04000000,
  1059.     NENH_grfUnused                = 0x08000000,
  1060.     NENH_grfSAPVersion            = 0x10000000,
  1061.     NENH_grfSAPAddressType        = 0x20000000,
  1062.     NENH_grfSAPOther            = 0x40000000,
  1063.     NENH_grfSAPEncryptComp        = 0x80000000,
  1064.     NENH_grfAnyIP                = (NENH_grfSomeVarIP | NENH_grfVariationAdded | NENH_grfVariationRemoved),
  1065.     NENH_grfAll                    = (NENH_grfSomeVarAttribute<<1) - 1                // all flags
  1066. } NENH_grfDiff;
  1067.  
  1068. typedef enum NVAR_grfDiff    
  1069. {    
  1070.     NVAR_grfNone                = 0x0000,
  1071.     NVAR_grfDescription            = 0x0001,
  1072.     NVAR_grfMediaName            = 0x0002,
  1073.     NVAR_grfMediaTitle            = 0x0004,
  1074.     NVAR_grfFilePort            = 0x0008,
  1075.     NVAR_grfFileIPAddress        = 0x0010,
  1076.     NVAR_grfFileIPAdapter        = 0x0020,
  1077.     NVAR_grfTriggerPort            = 0x0040,
  1078.     NVAR_grfTriggerIPAddress    = 0x0080,
  1079.     NVAR_grfTriggerIPAdapter    = 0x0100,
  1080.     NVAR_grfAttributes            = 0x0200,
  1081.     NVAR_grfLanguages            = 0x0400,
  1082.     NVAR_grfBandwidth            = 0x0800,
  1083.     NVAR_grfBandwidthInfo        = 0x1000,
  1084.     NVAR_grfRest                = 0x2000,
  1085.     NVAR_grfAnyIP                = (NVAR_grfFilePort | NVAR_grfFileIPAddress | NVAR_grfFileIPAdapter |
  1086.                                       NVAR_grfTriggerPort | NVAR_grfTriggerIPAddress | NVAR_grfTriggerIPAdapter),            
  1087.     NVAR_grfAnyText                = (NVAR_grfDescription | NVAR_grfMediaName | NVAR_grfMediaTitle),            
  1088.     NVAR_grfAnyBandwidth        = (NVAR_grfBandwidth | NVAR_grfBandwidthInfo),            
  1089.     NVAR_grfAnyAttribute        = (NVAR_grfAttributes | NVAR_grfRest),            
  1090.  
  1091.     NVAR_grfAll                    = (NVAR_grfRest<<1) - 1                // all flags
  1092. } NVAR_grfDiff;
  1093.  
  1094.  
  1095. typedef enum NTRK_grfDiff                    // attempt at a bit-field flag
  1096. {
  1097.     NTRK_grfNone    = 0x00,
  1098.     NTRK_grfURL        = 0x01,
  1099.     NTRK_grfName    = 0x02,
  1100.     NTRK_grfScript    = 0x04,
  1101.     NTRK_grfDate    = 0x08,
  1102.     NTRK_grfTVELevel= 0x10,
  1103.     NTRK_grfExpired = 0x20,                    // trigger arrived out of date 
  1104.     NTRK_grfRest    = 0x40,
  1105.     NTRK_grfAll        = (NTRK_grfRest<<1) - 1                // all flags
  1106. }    NTRK_grfDiff;
  1107.  
  1108. typedef enum NFLT_grfHaltFlags                // flags to turn various processing bits off
  1109. {
  1110.     NFLT_grfNone            = 0x00,
  1111.  
  1112.     NFLT_grfTA_Listen        = 0x01,            // don't listen for CC (XOverLink) triggers
  1113.     NFLT_grfTA_Decode        = 0x02,            // don't accumulate byte data for XOverLink triggers into strings
  1114.     NFLT_grfTA_Parse        = 0x04,            // don't parse any XOverLink data
  1115.     
  1116.     NFLT_grfTB_AnncListen   = 0x10,            // suspend listening for announcement packets if set
  1117.     NFLT_grfTB_AnncDecode   = 0x20,            // suspend decoding and processing of announcement packets if set
  1118.     NFLT_grfTB_AnncParse    = 0x40,            // don't parse any announcements
  1119.  
  1120.     NFLT_grfTB_TrigListen   = 0x100,        // suspend listening for transport B triggers
  1121.     NFLT_grfTB_TrigDecode   = 0x200,        // suspend listening for transport B triggers
  1122.     NFLT_grfTB_TrigParse    = 0x400,        // don't parse any transport B triggers
  1123.  
  1124.     NFLT_grfTB_DataListen   = 0x1000,        // suspend listening for transport B data (files)
  1125.     NFLT_grfTB_DataDecode   = 0x2000,        // suspend listening for transport B data (files)
  1126.     NFLT_grfTB_DataParse    = 0x4000,        // don't parse any transport B data (files)
  1127.  
  1128.     NFLT_grf_ExpireQueue    = 0x10000,        // turn expire queue processing on and off
  1129.     NFLT_grf_Extra1            = 0x100000,        // extra flag
  1130.     NFLT_grf_Extra2            = 0x200000,        // extra flag
  1131.     NFLT_grf_Extra3            = 0x400000,        // extra flag
  1132.     NFLT_grf_Extra4            = 0x800000        //extra flag 
  1133.  
  1134. }    NFLT_grfHaltFlags;
  1135.  
  1136.  
  1137. // -------------------------------------------------    
  1138. // ---------------------------------------------------
  1139. //            CAUTION - if Change events below, need to perform (after MIDL compiling this file): 
  1140. //                        CTVESupervisor->Implement Connection Point (_ITVEEvents)
  1141. //                    AND    
  1142. //                        CTVEFeature->Implement Connection Point (_ITVEEvents)
  1143. //                      to regenerate the  CProxy_ITVEEvents<> code.    
  1144. //
  1145. //                    Select Browse... button, goto filters\tve\mstve\objd\i386 directory, use mstve.tlb 
  1146. //
  1147. //                    Note thefile MSTvECP.h must be checked out.    
  1148. //
  1149.     
  1150.     [
  1151.         uuid(05500000-FAA5-4df9-8246-BFC23AC5CEA8),
  1152.         helpstring("_ITVEEvents Interface")
  1153.     ]
  1154.     dispinterface _ITVEEvents
  1155.     {
  1156.         properties:
  1157.         methods:
  1158.         [id(2101), helpstring("method NotifyTVETune")]                    HRESULT NotifyTVETune([in] NTUN_Mode tuneMode, [in] ITVEService *pService, [in] BSTR bstrDescription, [in] BSTR bstrIPAdapter);
  1159.         [id(2102), helpstring("method NotifyTVEEnhancementNew")]        HRESULT NotifyTVEEnhancementNew([in] ITVEEnhancement *pEnh);
  1160.         [id(2103), helpstring("method NotifyTVEEnhancementUpdated")]    HRESULT NotifyTVEEnhancementUpdated([in] ITVEEnhancement *pEnh, [in] long lChangedFlags);    // changedFlags : NENH_grfDiff
  1161.         [id(2104), helpstring("method NotifyTVEEnhancementStarting")]    HRESULT NotifyTVEEnhancementStarting([in] ITVEEnhancement *pEnh);
  1162.         [id(2105), helpstring("method NotifyTVEEnhancementExpired")]    HRESULT NotifyTVEEnhancementExpired([in] ITVEEnhancement *pEnh);
  1163.         [id(2106), helpstring("method NotifyTVETriggerNew")]            HRESULT NotifyTVETriggerNew([in] ITVETrigger *pTrigger,[in]  BOOL fActive);
  1164.         [id(2107), helpstring("method NotifyTVETriggerUpdated")]        HRESULT NotifyTVETriggerUpdated([in] ITVETrigger *pTrigger,[in]  BOOL fActive, [in] long lChangedFlags);    // changedFlags : NTRK_grfDiff
  1165.         [id(2108), helpstring("method NotifyTVETriggerExpired")]        HRESULT NotifyTVETriggerExpired([in] ITVETrigger *pTrigger,[in]  BOOL fActive);
  1166.         [id(2109), helpstring("method NotifyTVEPackage")]                HRESULT NotifyTVEPackage([in] NPKG_Mode engPkgMode, [in] ITVEVariation *pVariation, [in] BSTR bstrUUID, [in] long  cBytesTotal, [in] long  cBytesReceived);
  1167.         [id(2110), helpstring("method NotifyTVEFile")]                    HRESULT NotifyTVEFile([in] NFLE_Mode engFileMode, [in] ITVEVariation *pVariation, [in] BSTR bstrUrlName, [in] BSTR bstrFileName);
  1168.         [id(2111), helpstring("method NotifyTVEAuxInfo")]                HRESULT NotifyTVEAuxInfo([in] NWHAT_Mode engAuxInfoMode, [in] BSTR bstrAuxInfoString, [in] long lChangedFlags, [in] long lErrorLine);    // WhatIsIt is NWHAT_Mode - lChangedFlags is NENH_grfDiff or NTRK_grfDiff treated as error bits
  1169.     };
  1170.  
  1171.     [
  1172.         uuid(05500001-FAA5-4df9-8246-BFC23AC5CEA8),
  1173.         helpstring("TVETrigger Class")
  1174.     ]
  1175.     coclass TVETrigger
  1176.     {
  1177.         [default] interface ITVETrigger;
  1178.         interface ITVETrigger_Helper;
  1179.     };
  1180. // ----------------------------------------------------
  1181.  
  1182.     [
  1183.         uuid(05500002-FAA5-4df9-8246-BFC23AC5CEA8),
  1184.         helpstring("TVETrack Class")
  1185.     ]
  1186.     coclass TVETrack
  1187.     {
  1188.         [default] interface ITVETrack;
  1189.         interface ITVETrack_Helper;
  1190.     };
  1191. // ---------------------------------
  1192. //    [
  1193. //        uuid(05500012-FAA5-4df9-8246-BFC23AC5CEA8),
  1194. //        helpstring("TVETracks Class")
  1195. //    ]
  1196. //    coclass TVETracks
  1197. //    {
  1198. //        [default] interface ITVETracks;
  1199. //    };
  1200. // ----------------------------------------------------
  1201.  
  1202.     [
  1203.         uuid(05500003-FAA5-4df9-8246-BFC23AC5CEA8),
  1204.         helpstring("TVEVariation Class")
  1205.     ]
  1206.     coclass TVEVariation
  1207.     {
  1208.         [default] interface ITVEVariation;
  1209.         interface ITVEVariation_Helper;
  1210.     };
  1211. //    [
  1212. //        uuid(05500013-FAA5-4df9-8246-BFC23AC5CEA8),
  1213. //        helpstring("TVEVariations Class")
  1214. //    ]
  1215. //    coclass TVEVariations
  1216. //    {
  1217. //        [default] interface ITVEVariations;
  1218. //    };
  1219. // ---------------------------------------------------
  1220.     [
  1221.         uuid(05500004-FAA5-4df9-8246-BFC23AC5CEA8),
  1222.         helpstring("TVEEnhancement Class")
  1223.     ]
  1224.     coclass TVEEnhancement
  1225.     {
  1226.         [default] interface ITVEEnhancement;
  1227.         interface ITVEEnhancement_Helper;
  1228.     };
  1229.  
  1230.             // --------------------------------
  1231.  
  1232.     [
  1233.         uuid(05500014-FAA5-4df9-8246-BFC23AC5CEA8),
  1234.         helpstring("TVEEnhancements Class")
  1235.     ]
  1236.     coclass TVEEnhancements
  1237.     {
  1238.         [default] interface ITVEEnhancements;
  1239.     };
  1240. // ---------------------------------------------------
  1241.  
  1242.  
  1243.     [
  1244.         uuid(05500005-FAA5-4df9-8246-BFC23AC5CEA8),
  1245.         helpstring("TVEService Class")
  1246.     ]
  1247.     coclass TVEService
  1248.     {
  1249.         [default] interface ITVEService;
  1250.         interface ITVEService_Helper;
  1251.     };
  1252.  
  1253.         [
  1254.         uuid(05500025-FAA5-4df9-8246-BFC23AC5CEA8),
  1255.         helpstring("TVEFeature Class")
  1256.     ]
  1257.     coclass TVEFeature
  1258.     {
  1259.         [default] interface ITVEFeature;
  1260.         [default, source] dispinterface _ITVEEvents;        // out going event handler 
  1261.         interface _ITVEEvents;                                // incoming event interface
  1262. //        interface ITVEService_Helper;
  1263.     };
  1264.  
  1265.         // -------------------------------
  1266.  
  1267.     [
  1268.         uuid(05500015-FAA5-4df9-8246-BFC23AC5CEA8),
  1269.         helpstring("TVEServices Class")
  1270.     ]
  1271.     coclass TVEServices
  1272.     {
  1273.         [default] interface ITVEServices;
  1274.     };
  1275.  
  1276.  
  1277. // ---------------------------------------------------
  1278.     [
  1279.         uuid(05500006-FAA5-4df9-8246-BFC23AC5CEA8),
  1280.         helpstring("TVESupervisor Class")
  1281.     ]
  1282.     coclass TVESupervisor
  1283.     {
  1284.         [default] interface ITVESupervisor;
  1285.         [default, source] dispinterface _ITVEEvents;
  1286.         interface ITVESupervisor_Helper;
  1287.     };
  1288. /*
  1289.     [
  1290.         hidden,
  1291.         uuid(05500406-FAA5-4df9-8246-BFC23AC5CEA8),
  1292.         helpstring("ITVESupervisorGITProxy Class")
  1293.     ]
  1294.     coclass TVESupervisorGITProxy
  1295.     {
  1296.         [default] interface ITVESupervisorGITProxy;
  1297.     }; 
  1298.     */
  1299. // ---------------------------------------------------
  1300.  
  1301.     [
  1302.         uuid(05500021-FAA5-4df9-8246-BFC23AC5CEA8),
  1303.         helpstring("TVEAttrMap Class")
  1304.     ]    
  1305.     coclass TVEAttrMap
  1306.     {
  1307.         [default] interface ITVEAttrMap;
  1308.     };
  1309.  
  1310.     [
  1311.         uuid(05500022-FAA5-4df9-8246-BFC23AC5CEA8),
  1312.         helpstring("TVEAttrTimeQ Class")
  1313.     ]    
  1314.     coclass TVEAttrTimeQ
  1315.     {
  1316.         [default] interface ITVEAttrTimeQ;
  1317.     };
  1318.  
  1319.     [
  1320.         uuid(05500030-FAA5-4df9-8246-BFC23AC5CEA8),
  1321.         helpstring("TVEMCast Class")
  1322.     ]    
  1323.     coclass TVEMCast
  1324.     {
  1325.         [default] interface ITVEMCast;
  1326.     };
  1327.  
  1328.     [
  1329.         uuid(05500031-FAA5-4df9-8246-BFC23AC5CEA8),
  1330.         helpstring("TVEMCasts Class")
  1331.     ]
  1332.     coclass TVEMCasts
  1333.     {
  1334.         [default] interface ITVEMCasts;
  1335.     };
  1336.  
  1337.     [
  1338.         uuid(05500032-FAA5-4df9-8246-BFC23AC5CEA8),
  1339.         helpstring("TVEMCastManager Class")
  1340.     ]
  1341.     coclass TVEMCastManager
  1342.     {
  1343.         [default] interface ITVEMCastManager;
  1344.         interface ITVEMCastManager_Helper;
  1345.     };
  1346.  
  1347.  
  1348.     [
  1349.         uuid(05500040-FAA5-4df9-8246-BFC23AC5CEA8),
  1350.         helpstring("TVEMCastCallback Class")
  1351.     ]
  1352.     coclass TVEMCastCallback
  1353.     {
  1354.         [default] interface ITVEMCastCallback;
  1355.     };
  1356.     [
  1357.         uuid(05500041-FAA5-4df9-8246-BFC23AC5CEA8),
  1358.         helpstring("TVECBAnnc Class")
  1359.     ]
  1360.                 // specific Multicast Callbacks
  1361.     coclass TVECBAnnc
  1362.     {
  1363.         [default] interface ITVECBAnnc;
  1364.     };
  1365.     [
  1366.         uuid(05500042-FAA5-4df9-8246-BFC23AC5CEA8),
  1367.         helpstring("TVECBTrig Class")
  1368.     ]
  1369.     coclass TVECBTrig
  1370.     {
  1371.         [default] interface ITVECBTrig;
  1372.     };
  1373.     [
  1374.         uuid(05500043-FAA5-4df9-8246-BFC23AC5CEA8),
  1375.         helpstring("TVECBFile Class")
  1376.     ]
  1377.     coclass TVECBFile
  1378.     {
  1379.         [default] interface ITVECBFile;
  1380.     };
  1381.     [
  1382.         uuid(05500049-FAA5-4df9-8246-BFC23AC5CEA8),
  1383.         helpstring("TVECBDummy Class")
  1384.     ]
  1385.     coclass TVECBDummy
  1386.     {
  1387.         [default] interface ITVECBDummy;
  1388.     };
  1389.  
  1390.  
  1391.     [
  1392.         uuid(05500050-FAA5-4df9-8246-BFC23AC5CEA8),
  1393.         helpstring("TVEFile Class")
  1394.     ]
  1395.     coclass TVEFile
  1396.     {
  1397.         [default] interface ITVEFile;
  1398.     }
  1399.  
  1400.                 // This control gets CoCreate'ed by an app to handle hooking things together
  1401.     [
  1402.         uuid(05500070-FAA5-4df9-8246-BFC23AC5CEA8),
  1403.         helpstring("TVENavAid Class")
  1404.     ]
  1405.     coclass TVENavAid
  1406.     {
  1407.         [default] interface ITVENavAid;                        // controllable from HTML
  1408.         interface ITVENavAid_Helper;                        // internal control methods
  1409.         interface ITVENavAid_NoVidCtl;                        // to work without the VidControl
  1410.     };
  1411.  
  1412.                 // this is the DShow TVE Receiver Filter that encapsulates a TVESupervisor 
  1413.                 //  object in a in a DShow graph
  1414.     [
  1415.         uuid(05500080-FAA5-4df9-8246-BFC23AC5CEA8),
  1416.         helpstring("TVEFilter Class")
  1417.     ]
  1418.     coclass TVEFilter
  1419.     {
  1420. //        [default, source] dispinterface _ITVEEvents;
  1421.         [default] interface ITVEFilter;
  1422.         interface ITVEFilter_Helper;
  1423.     };
  1424.  
  1425.                 // This control gets CoCreated by HTML in <OBJECT TYPE="application\tve-trigger">
  1426.                 //  Implements the tve-trigger receiver object properties as per Atvef Spec
  1427.     [
  1428.         uuid(05500091-FAA5-4df9-8246-BFC23AC5CEA8),
  1429.         helpstring("_ITVETriggerCtrlEvents Interface")
  1430.     ]
  1431.     dispinterface _ITVETriggerCtrlEvents 
  1432.     {
  1433.         properties:
  1434.         methods:
  1435.     };
  1436.  
  1437.  
  1438.     [
  1439.         uuid(05500090-FAA5-4df9-8246-BFC23AC5CEA8),
  1440.         helpstring("TVETriggerCtrl Class")
  1441.     ]
  1442.     coclass TVETriggerCtrl
  1443.     {
  1444.         [default] interface ITVETriggerCtrl;                    // controllable from HTML
  1445.         interface ITVETriggerCtrl_Helper;                        // internal control methods
  1446.         [default, source] dispinterface _ITveTriggerCtrlEvents;    // fire control events to HTML
  1447. //        interface _ITVEvents;                                    // respond to slew of TVE events
  1448.     };
  1449.  
  1450. };
  1451.